from aiogram.fsm.state import State, StatesGroup

# Client


class ClientSG(StatesGroup):
    register = State()
    start = State()


class UserProfileSG(StatesGroup):
    show_profile = State()


class LanguageSG(StatesGroup):
    list_of_languages = State()


class HelpSG(StatesGroup):
    show_help_info = State()


class SoftProxySG(StatesGroup):
    show_info = State()


class MissingGeoSG(StatesGroup):
    show_missing_geo_msg = State()


class SelectProxySG(StatesGroup):
    list_proxy_types = State()
    select_proxy_privacy = State()
    select_country = State()
    select_provider = State()
    select_category = State()
    select_site = State()
    select_period = State()
    set_order_quantity = State()
    create_order = State()
    order_created = State()


class ProxySubscriptionSG(StatesGroup):
    show_info = State()


class BuyProxySubscriptionSG(StatesGroup):
    select_plan = State()
    create_order = State()


class BuyVPNSG(StatesGroup):
    show_info = State()
    create_order = State()
    order_created = State()


class VPNRouterSG(StatesGroup):
    show_info = State()
    create_order = State()
    order_created = State()


class ManageProxySubscriptionSG(StatesGroup):
    select_country = State()
    select_provider = State()


class UserOrdersSG(StatesGroup):
    orders_history = State()
    user_orders_active = State()
    user_orders_archive = State()
    order_details = State()


class OrderDetailsSG(StatesGroup):
    order_details = State()
    extend_order = State()
    extend_confirmation = State()
    select_ip_change_period = State()


class ChangeAuthorizationSG(StatesGroup):
    select_authorization_type = State()
    select_ip_address = State()


class AddAllowedIPSG(StatesGroup):
    enter_ip_address = State()


class IpChangePeriodSG(StatesGroup):
    select_ip_change_period = State()
    select_custom_period = State()


class ProxyDetailsSG(StatesGroup):
    select_proxy = State()
    proxy_details = State()


class UserPaymentsSG(StatesGroup):
    payments_history = State()
    payment_details = State()


class PaymentSG(StatesGroup):
    select_amount = State()
    create_payment = State()


# Admin


class AdminSG(StatesGroup):
    admin = State()


class MailingSG(StatesGroup):
    start_mailing = State()
    mailing_text = State()
    mailing_text_eng = State()
    select_date = State()
    select_time = State()
    confirm_mailing = State()


class ChangeProxySG(StatesGroup):
    orders_list = State()
    proxies_list = State()
    select_proxy = State()
    confirm = State()
